home *** CD-ROM | disk | FTP | other *** search
/ Best Tools for JAVA / Best Tools for JAVA.iso / JAVA_ALL / JAVA_UTL / HYPERPRO / SRC / PVS / UTILS / IMAGEUTI.JAV < prev    next >
Encoding:
Text File  |  1996-09-14  |  1.2 KB  |  55 lines

  1. package PVS.Utils;
  2.  
  3. import java.awt.*;
  4. import java.io.*;
  5. import java.awt.image.*;
  6.  
  7. public class ImageUtils {
  8.  
  9.   /**
  10.     rotateImage
  11.  
  12.     for now it does 90 degree counterclockwise rotation only
  13.    */
  14.  
  15.   static Image rotateImage(Image imgsrc, double grad){
  16.     
  17.     int srcwidth = imgsrc.getWidth(null);
  18.     int srcheight = imgsrc.getHeight(null);
  19.     
  20.     int reswidth = srcheight, resheight = srcwidth;
  21.     
  22.     int[] srcbuf = new int[srcwidth*srcheight];
  23.  
  24.     PixelGrabber pg = new PixelGrabber(imgsrc,0,0,srcwidth,srcheight,
  25.                        srcbuf,0,srcwidth);
  26.     try{
  27.       pg.grabPixels(1000); 
  28.     }catch(InterruptedException e){ // who can interupt us ?
  29.       System.err.println("interrupted waiting for pixels!");
  30.       return null;
  31.     }    
  32.  
  33.  
  34.     int[] resbuf = new int[reswidth*resheight];
  35.  
  36.     for(int j=0;j < resheight;j++){
  37.       int rs = j*reswidth;
  38.       int ss = srcwidth - j - 1;
  39.       for(int i=0,ii=0;i < reswidth;i++){
  40.     resbuf[rs+i] = srcbuf[ss + ii];
  41.     ii+= srcwidth;
  42.       }
  43.     }
  44.  
  45.     ImageProducer ip = new MemoryImageSource(reswidth,resheight,resbuf,0,reswidth);
  46.     Image imgres = Toolkit.getDefaultToolkit().createImage(ip);
  47.     return imgres;
  48.   }
  49. }
  50.  
  51.  
  52.  
  53.  
  54.  
  55.